The present invention relates to a motor driving apparatus adapted to switch an exciting phase according to the position of a rotor to carry out commutation control thereby to perform rotational drive as in a brushless DC motor or a step motor or the like, and more specifically, it relates to a motor driving apparatus adapted to control the commutation of a motor by making use of a position detector for detecting the position of an object driven by the motor.
As an art for detecting the rotational position of a motor employing a permanent magnet for a rotor as in a brushless DC motor or a step motor or the like, there has conventionally been one that utilizes a counter-electromotive voltage generated in an open phase (unenergized phase) of a stator winding. More specifically, a counter-electromotive voltage obtained from an exciting coil is detected, and the zero-cross point at which the detected counter-electromotive voltage crosses a neutral point voltage is determined so as to detect the position of the rotor. The commutation control in this case is implemented by performing a commutation operation at a point where the phase has been shifted by, for example, 30 degrees from the foregoing zero-cross point.
Therefore, when the motor is at rest, no counter-electromotive voltage can be obtained from the exciting coil, and no sensorless drive can be performed. Hence, to start the motor at rest to rotationally drive it, so-called forced commutation is carried out to forcibly drive the rotor thereby to obtain a counter-electromotive voltage of a predetermined value or more from the exciting coil before proceeding to the sensorless drive.
In contrast to such sensorless control of a motor, there has also been known a method or the like wherein a motor is provided with a Hall element to thereby detect the position of a rotor to drive the motor on the basis thereof.
However, when conducting the sensorless control based on counter-electromotive voltage, the control cannot be conducted at low speed as described above, making it unsuited for carrying out drive control that involves repetitious stops and starts. According to the method whereby the control is conducted using a Hall element or the like, the control can be conducted even at low speed; however, the variations in the magnetic pole dividing width of the magnetic pole of a rotor, the variations in the position where the Hall element is installed, etc. directly affect control accuracy in the form of commutation timing errors. Hence, in an operation in a speed range wherein counter-electromotive voltages can be detected, the sensorless control based on counter-electromotive voltages is currently stable since it does not involve the errors mentioned above. There has been a demand for a driving method that allows control to be carried out even at low speed and also permits control of a motor with higher accuracy to be achieved.
Accordingly, the present invention has been made with attention focused on the above-mentioned conventional unsolved problems, and it is an object of the present invention to provide a motor driving apparatus capable of reliably carrying out control even at low speed and of controlling the drive of a motor with higher accuracy.
To attain the above object, a motor driving apparatus of the present invention is characterized by the provision of a position detector that outputs a pulse signal as an object driven by a motor travels, and commutation controlling means for controlling the commutation of the motor on the basis of the pulse signal from the position detector.
A pulse signal is output from a position detector or the like provided on an object to be driven by the motor as the object to be driven travels, and the commutation of the motor is controlled on the basis of the pulse signal. More specifically, the object to be driven is driven by the motor, so that the travel of the object to be driven is proportional to the rotational amount of the motor, and the rotational state of the motor can be detected from the traveling state of the object to be driven, thus enabling the detection of the position of the rotor. Hence, by controlling the commutation of the motor on the basis of a detection signal from the position detector, a commutation timing can be precisely detected even if the motor is in a low speed zone.
A motor driving apparatus can also be characterized by the provision of a position detector that outputs a pulse signal as an object driven by a motor travels, and is able to output at least one or more pulses per commutation section of the motor, counting means for adding or subtracting pulses from the position detector according to a rotational direction of the motor, taking a state wherein a rotor of the motor is in an initial position as a reference, commutation pattern storing means for storing a commutation pattern that specifies a commutation timing set on the basis of the number of pulses per commutation section of the motor, and commutation controlling means for performing the commutation of the motor if a count value of the counting means coincides with a commutation pattern stored by the commutation pattern storing means.
When the motor runs, thereby causing an object to be driven to travel, for example, a pulse of a pulse signal from a position detector provided on the object to be driven is counted according to the rotational direction of the motor, and the commutation of the motor is performed when a count value, which uses a reference when the rotor of the motor is at a position based on a commutation timing, coincides with a commutation pattern stored by the commutation pattern storing means. The commutation pattern is set on the basis of the number of pulse signals received per commutation section that has been detected in advance; therefore, commutation will be performed at an exact commutation timing by carrying out commutation at a point where the count value agrees with the commutation pattern.
The motor driving apparatus can further be characterized in that the commutation pattern is constructed by a string of commutation timing values set on the basis of a string of numeric values created by adding the number of section pulses, which is the number of pulses per commutation section, until a sum of the number of section pulses becomes an integral value, rounding off all digits to the right of a decimal point of the sum of the number of section pulses in each adding cycle so as to obtain an integral value, and arranging the integral values in an ascending order, and the commutation controlling means repeatedly switches the commutation timing values in the order in which the commutation timing values are arranged in the commutation pattern, and performs commutation each time the commutation timing value coincides with the count value.
The commutation pattern is constructed by a string of numeric values based on the number of additions performed until the sum of the number of section pulses, which indicates the number of pulses per commutation section, reaches an integral value when the numbers of section pulses are added in sequence. Since the number of section pulses is the number of pulse signal per commutation section, commutation may be performed each time the count value coincides with the number of section pulses. If, however, the number of section pulses is not an integral value, then the commutation timing based on the number of section pulses will be deviated from an actual commutation timing based on a count value.
If an integral value is obtained when the number of section pulses is added several times, then the commutation timing determined on the basis of the number of section pulses agrees with a true commutation timing based on the position of a rotor at the point when the integral value is reached; therefore, no difference in the commutation timing will result at that point. Hence, the number of times of additions performed until an integral value is reached when the numbers of section pulses are added is defined as one cycle, the digits to the right of the decimal point of the sum of the numbers of section pulses at respective commutation timings based on the numbers of section pulses in the one cycle are rounded off to represent it in the form of an integral value, and a string of numeric values constructed by, for example, arranging the integral values, which have been approximated by rounding off, in an ascending order as commutation timing values, or a string of numeric values constructed by the differences among the approximated values in an ascending order of the number of additions as the commutation timing values is set as a commutation pattern. And, by changing the commutation timing values in sequence according to the arranging order in the commutation pattern and by carrying out commutation each time a commutation timing value agrees with a count value, the difference between a commutation timing based on the number of section pulses and a commutation timing based on a count value will be brought to zero at a point when one cycle of commutation is implemented, that is, at a point when a series of commutations is implemented on the basis of the commutation timing values making up the commutation pattern. Thus, no error will be accumulated each time commutation is performed.
The motor driving apparatus of the present invention is characterized by the provision of a position detector that outputs a pulse signal as an object driven by a motor travels, and is able to output at least one or more pulses per commutation section of the motor, commutation constant storing means for storing, as a commutation constant, a reciprocal of the number of section pulses, which is the number of pulses from the position detector per commutation section of the motor, that has been detected in advance, and commutation controlling means that adds or subtracts a commutation constant, which is stored by the commutation constant storing means, according to a rotational direction of the motor each time a pulse is received from the position detector, taking a state wherein a rotor of the motor is in an initial position as a reference, and performs commutation of the motor if a cumulative value of the commutation constant becomes an integral value or if an integral portion of the cumulative value changes, or if a sign of the cumulative value changes.
The motor driving apparatus can also be characterized in that the commutation constant is a value obtained by dividing the number of commutations required for rotating the rotor by a predetermined amount by a design value of the number of pulses to be received for rotating the rotor by the predetermined amount.
The motor driving apparatus can further be characterized in that the commutation constant is a value obtained by dividing the number of commutations required for rotating the rotor by a predetermined amount by a measured value of the number of pulses that have been received when the rotor has been rotated by the predetermined amount.
The motor driving apparatus can also be characterized in that the commutation constant is a value obtained by dividing the number of commutations required for rotating the rotor once by a measured value of the number of pulses that have been received when the rotor has been rotated once.
The motor driving apparatus can further be characterized in that if the commutation constant is denoted as T, a significant digit to the right of the decimal point thereof is denoted as n, the travel amount of the object to be driven is denoted as L, the resolution of the position detector (the travel amount of the object to be driven/the number of pulses) is denoted as B, a permissible value of the difference between an estimated position of the rotor estimated on the basis of the pulse signal and the actual position of the rotor is denoted in terms of an electrical angle "sgr", and the electrical angle of one commutation is denoted as F, then a relationship of (T+(L/B)xc3x97(5/10n+1))xc3x97F less than "sgr" holds.
The motor driving apparatus can also be characterized in that the object to be driven is an ink discharging head of an ink-jet printer, and the significant digit number to the right of the decimal point of the commutation constant is 4 to 8 digits.
When the motor runs to cause an object to be driven to travel, a pulse signal is output from the position detector due to the travel, and a commutation constant is added or subtracted according to the rotational direction of the motor each time a pulse is received, using a reference obtained when the rotor of the motor is in an initial position based on a commutation timing position. For example, the commutation constant is added in the case of a forward rotation, or subtracted in the case of a reverse rotation.
In this case, the commutation constant is the reciprocal of the number of pulses from the position detector per commutation section of the motor, so that it is a value to the right of a decimal point. Hence, at a point when the integral portion of an accumulated value of the commutation constant changes, or when the accumulated value reaches an integral value that includes a zero, or when the sign of the accumulated value changes, that is, when switching from a positive value to a negative value takes place or vice versa, this will be a commutation timing. Performing commutation at that commutation timing will allow commutation to be conducted at an exact timing.
The commutation constant can be easily calculated by dividing the number of commutations required for rotating the rotor by a predetermined amount by a design value of the number of pulses to be received when the rotor is rotated by the predetermined amount. Furthermore, by measuring the number of pulses actually received when the rotor is rotated by a predetermined amount and by calculating a commutation constant on the basis of the measured number of pulses, it is possible to set a commutation constant appropriate to the actual transfer characteristics of a transfer system of the driving force of the motor. In particular, by measuring the number of pulses received when the rotor is rotated once and by calculating the commutation constant on the basis of the calculated number of pulses, it is possible to obtain a commutation constant in which all variations at commutation timings attributable to dimensional errors or the like of the components in the motor are evened, permitting the prevention of commutation timing errors from being accumulated.
Furthermore, if the significant digit number to the right of the decimal point of the commutation constant T is denoted as n, the travel amount of the object to be driven is denoted as L, the resolution of the position detector (the travel amount of the object to be driven/the number of pulses) is denoted as B, a permissible value of the difference between an estimated position of the rotor estimated on the basis of the pulse signal and the actual position of the rotor is denoted in terms of an electrical angle "sgr", and the electrical angle during one commutation is denoted as F, then the commutation constant T is set to satisfy (T+(L/B)xc3x97(5/10n+1))xc3x97F less than "sgr". Hence, even if the travel of the object to be driven or the variables, such as a resolution, of the position detector change, it will be possible to carry out commutation control that allows permissible value "sgr" to be satisfied.
Especially when the object to be driven is an ink discharging head of an ink-jet printer, setting significant digit number n to the right of the decimal point of the commutation constant to 4 to 8 enables the ink discharging head to be applicable to printers handling almost all paper sizes.
The motor driving apparatus can further be characterized in that the commutation controlling means subtracts 1 from the cumulative value each time the cumulative value of the commutation constant reaches 1 or more while the commutation constant is being added, whereas it adds 1 to the cumulative value each time the cumulative value reaches 0 or less while the commutation constant is being subtracted.
The motor driving apparatus can also be characterized in that if the digit number to the right of the decimal point of the commutation constant is denoted as m, the commutation controlling means multiplies the commutation constant by 10m to handle it as an integral value of a digit number m, and performs commutation if an (m+1)th digit on the high order side of a cumulative value of the commutation constant changes or the cumulative value reaches zero, or the sign of the cumulative value changes.
The motor driving apparatus can further be characterized in that the commutation controlling means subtracts 10m from the cumulative value each time the (m+1)th digit on the high order side of the cumulative value of the commutation constant changes, and adds 10m to the cumulative value each time the cumulative value reaches 0 or less.
The commutation controlling means subtracts 1 from the cumulative value each time the cumulative value of the commutation constant reaches 1 or more while the commutation constant is being added, whereas it adds 1 to the cumulative value each time the cumulative value reaches 0 or less while the commutation constant is being subtracted. This makes it possible to avoid an increase in the number of digits of the cumulative value of the commutation constant.
On the other hand, when the digit number to the right of the decimal point of the commutation constant is m, the commutation controlling means multiplies the commutation constant by 10m so as to handle it as an integral value, so that an operation will include only integral values, thus making it possible to simplify the operation.
In this case, it is also possible to avoid an increase in the number of digits of a cumulative value of a commutation constant by subtracting 10m from the cumulative value each time the (m+1)th digit on the high order side of the cumulative value of the commutation constant changes, and conversely, by adding 10m to the cumulative value each time the cumulative value reaches 0 or less.